package com.itany.corejava.code11_io.字符流;

import java.io.*;

/**
 * @author 石小俊
 * @date 2023年05月12日 11:18
 */
public class Test03_转换流 {

    public static void main(String[] args) {
        try (
                // FileInputStream in = new FileInputStream("a.txt");
                // 定义转换流时可以指定编码
                // InputStreamReader reader = new InputStreamReader(in);
                // InputStreamReader reader = new InputStreamReader(in,"GBK");
                // 转换流只是用于实现转换操作
                // 读写操作仍然使用对应的文件流
                // BufferedReader br = new BufferedReader(reader);
                // 简写方式
                // BufferedReader br = new BufferedReader(
                //         new InputStreamReader(
                //                 new FileInputStream("a.txt")));
                // PrintWriter out = new PrintWriter("aa.txt");

                // 可以使用指定的编码读取文件
                // 一般用于使用与读取的文件一致的编码进行读取
                BufferedReader br = new BufferedReader(
                        new InputStreamReader(
                                new FileInputStream("a.txt"), "GBK"));

                // 可以使用指定编码写入文件
                // 一般是为了写入指定编码的数据时使用
                // PrintWriter out = new PrintWriter("aaa.txt","GBK");
                PrintWriter out = new PrintWriter("aaaa.txt", "UTF-8");

        ) {
            String line = null;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
                out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
